package com.umpay.dto.merAccess.req.register;

import com.umpay.annotation.Pattern;
import com.umpay.dto.merAccess.req.CommonReq;
import org.hibernate.validator.constraints.NotEmpty;

/*******************************************************************
 * description : 企业会员注册请求类
 * @author zhangru
 * @date 2018年1月22日 上午11:17:12
 * @version 1.0
 *************************************************************/
public class MerMemberRegisterReq extends CommonReq {

	@NotEmpty(message = "商户订单号不能为空")
	@Pattern(message = "商户订单号格式不正确")
	private String order_id;//	商户订单号	变长20	商户订单号支持数字、英文字母，其他字符不建议使用  长度4至20位
	@NotEmpty(message = "商户订单日期不能为空")
	@Pattern(message = "商户订单日期格式不正确")
	private String mer_date;//	商户订单日期	定长8	商户生成订单的日期，格式YYYYMMDD
	@NotEmpty(message = "商户用户标识不能为空")
	@Pattern(message = "	商户用户标识格式不正确")
	private String mer_cust_id;//	商户用户标识	变长20	
	@NotEmpty(message = "会员类型不能为空")
	@Pattern(message = "会员类型格式不正确")
	private String user_type;//	会员类型	定长2	01：个人
	@NotEmpty(message = "会员名称不能为空")
	private String cust_name;//	用户姓名	变长256	校验规则：^[\\u4e00-\\u9fa5\\u00b7]{2,36}$  GBK编码后使用联动公钥进行RSA加密，最后使用BASE64编码
	@NotEmpty(message = "证件类型不能为空")
	@Pattern(message = "证件类型格式不正确")
	private String cert_type;//	证件类型
	@NotEmpty(message = "资质是否三证合一不能为空")
	@Pattern(message = "资质是否三证合一格式不正确")
	private String license_type;//	资质是否三证合一	定长1	1．是 2.否 	Y
	@NotEmpty(message = "营业执照号不能为空")
	@Pattern(message = "营业执照号格式不正确")
	private String license_no;//	营业执照号（全国统一信用代码）	变长18	15位 or18位数字	Y
	@Pattern(message = "组织机构代码证号格式不正确")
	private String organization_id;//	组织机构代码证号	变长 32	LICENSETYPE为2时必填	N
	@Pattern(message = "税务登记证号格式不正确")
	private String tax_payer_num;//	税务登记证号	变长256		N
	@NotEmpty(message = "	法人姓名不能为空")
	@Pattern(message = "法人姓名格式不正确")
	private String lawyer;//	法人姓名	变长256	校验规则：^[\\u4e00-\\u9fa5\\u00b7]{2,36}$GBK编码后使用联动公钥进行RSA加密，最后使用BASE64编码	Y
	@NotEmpty(message = "法人证件类型不能为空")
	@Pattern(message = "法人证件类型格式不正确")
	private String identity_type;//	证件类型	变长2	详见附录证件类型
	@NotEmpty(message = "法人证件号不能为空")
	private String identity_code;//	证件号	变长256	用联动的公钥进行RSA加密后用，BASE64(GBK编码)加密该字段  证件类型为身份证时，仅支持18位长度   校验规则详见附录证件类型
	@NotEmpty(message = "联系人不能为空")
	@Pattern(message = "联系人格式不正确")
	private String cont_acts_name;//	联系人	变长 32	如果传递中文，需确保该字段在传入接口前，编码正确，使用UTF-8编码 UTF8转字节码-> RSA联动公钥加密->base64编码	Y
	@NotEmpty(message = "用户注册手机号不能为空")
	@Pattern(message = "用户注册手机号格式不正确")
	private String mobile_id;//	用户注册手机号	定长11	
	@NotEmpty(message = "企业对公账号不能为空")
	@Pattern(message = "企业对公账号格式不正确")
	private String bank_account;//		企业对公账号	变长256	GBK编码后使用联动公钥进行RSA加密，最后使用BASE64编码	Y
	@NotEmpty(message = "对公账号名称不能为空")
	@Pattern(message = "对公账号名称格式不正确")
	private String bank_account_name;//	对公账号名称	变长128	在银行开通的对公账号的名称	Y
//	@NotNull(message = "银行名称不能为空")
//	@Pattern(message = "银行名称格式不正确")
	private String bank_name;//	银行名称	变长128		Y
	@NotEmpty(message = "银行编号不能为空")
	@Pattern(message = "银行编号格式不正确")
	private String gate_id;//	银行编号	变长8		Y
	@NotEmpty(message = "开户行支行全称不能为空")
	@Pattern(message = "开户行支行全称格式不正确")
	private String bank_branch_name;//开户行支行名称
	@Pattern(message = "开户省格式不正确")
	private String bank_prov_name;//	开户行所在省
	@Pattern(message = "开户市格式不正确")
	private String bank_area_name;//	开户行所在市
	@Pattern(message = "账户类型格式不正确")
	private String acc_type;//	账户类型	变长3
	@Pattern(message = "服务器异步通知路径格式不正确")
	private String notify_url;//服务器异步通知页面路径

	public String getOrder_id() {
		return order_id;
	}
	public void setOrder_id(String order_id) {
		this.order_id = order_id;
	}
	public String getMer_date() {
		return mer_date;
	}
	public void setMer_date(String mer_date) {
		this.mer_date = mer_date;
	}
	public String getMer_cust_id() {
		return mer_cust_id;
	}
	public void setMer_cust_id(String mer_cust_id) {
		this.mer_cust_id = mer_cust_id;
	}
	public String getUser_type() {
		return user_type;
	}
	public void setUser_type(String user_type) {
		this.user_type = user_type;
	}
	public String getMobile_id() {
		return mobile_id;
	}
	public void setMobile_id(String mobile_id) {
		this.mobile_id = mobile_id;
	}
	public String getCust_name() {
		return cust_name;
	}
	public void setCust_name(String cust_name) {
		this.cust_name = cust_name;
	}
	public String getIdentity_type() {
		return identity_type;
	}
	public void setIdentity_type(String identity_type) {
		this.identity_type = identity_type;
	}
	public String getIdentity_code() {
		return identity_code;
	}
	public void setIdentity_code(String identity_code) {
		this.identity_code = identity_code;
	}
	public String getLicense_type() {
		return license_type;
	}
	public void setLicense_type(String license_type) {
		this.license_type = license_type;
	}
	public String getLicense_no() {
		return license_no;
	}
	public void setLicense_no(String license_no) {
		this.license_no = license_no;
	}
	public String getOrganization_id() {
		return organization_id;
	}
	public void setOrganization_id(String organization_id) {
		this.organization_id = organization_id;
	}
	public String getTax_payer_num() {
		return tax_payer_num;
	}
	public void setTax_payer_num(String tax_payer_num) {
		this.tax_payer_num = tax_payer_num;
	}
	public String getLawyer() {
		return lawyer;
	}
	public void setLawyer(String lawyer) {
		this.lawyer = lawyer;
	}
	public String getCont_acts_name() {
		return cont_acts_name;
	}
	public void setCont_acts_name(String cont_acts_name) {
		this.cont_acts_name = cont_acts_name;
	}
	public String getBank_account() {
		return bank_account;
	}
	public void setBank_account(String bank_account) {
		this.bank_account = bank_account;
	}
	public String getBank_account_name() {
		return bank_account_name;
	}
	public void setBank_account_name(String bank_account_name) {
		this.bank_account_name = bank_account_name;
	}
	public String getBank_name() {
		return bank_name;
	}
	public void setBank_name(String bank_name) {
		this.bank_name = bank_name;
	}
	public String getGate_id() {
		return gate_id;
	}
	public void setGate_id(String gate_id) {
		this.gate_id = gate_id;
	}
	public String getAcc_type() {
		return acc_type;
	}
	public void setAcc_type(String acc_type) {
		this.acc_type = acc_type;
	}
	public String getCert_type() {
		return cert_type;
	}
	public void setCert_type(String cert_type) {
		this.cert_type = cert_type;
	}
	public String getBank_branch_name() {
		return bank_branch_name;
	}
	public void setBank_branch_name(String bank_branch_name) {
		this.bank_branch_name = bank_branch_name;
	}
	public String getBank_prov_name() {
		return bank_prov_name;
	}
	public void setBank_prov_name(String bank_prov_name) {
		this.bank_prov_name = bank_prov_name;
	}
	public String getBank_area_name() {
		return bank_area_name;
	}
	public void setBank_area_name(String bank_area_name) {
		this.bank_area_name = bank_area_name;
	}
	public String getNotify_url() {
		return notify_url;
	}
	public void setNotify_url(String notify_url) {
		this.notify_url = notify_url;
	}
	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("MerMemberRegisterReq [order_id=");
		builder.append(order_id);
		builder.append(", mer_date=");
		builder.append(mer_date);
		builder.append(", mer_cust_id=");
		builder.append(mer_cust_id);
		builder.append(", user_type=");
		builder.append(user_type);
		builder.append(", cust_name=");
		builder.append(cust_name);
		builder.append(", cert_type=");
		builder.append(cert_type);
		builder.append(", license_type=");
		builder.append(license_type);
		builder.append(", license_no=");
		builder.append(license_no);
		builder.append(", organization_id=");
		builder.append(organization_id);
		builder.append(", tax_payer_num=");
		builder.append(tax_payer_num);
		builder.append(", lawyer=");
		builder.append(lawyer);
		builder.append(", identity_type=");
		builder.append(identity_type);
		builder.append(", identity_code=");
		builder.append(identity_code);
		builder.append(", cont_acts_name=");
		builder.append(cont_acts_name);
		builder.append(", mobile_id=");
		builder.append(mobile_id);
		builder.append(", bank_account=");
		builder.append(bank_account);
		builder.append(", bank_account_name=");
		builder.append(bank_account_name);
		builder.append(", bank_name=");
		builder.append(bank_name);
		builder.append(", gate_id=");
		builder.append(gate_id);
		builder.append(", bank_branch_name=");
		builder.append(bank_branch_name);
		builder.append(", bank_prov_name=");
		builder.append(bank_prov_name);
		builder.append(", bank_area_name=");
		builder.append(bank_area_name);
		builder.append(", acc_type=");
		builder.append(acc_type);
		builder.append(", notify_url=");
		builder.append(notify_url);
		builder.append(", mer_id=");
		builder.append(mer_id);
		builder.append(", version=");
		builder.append(version);
		builder.append(", accessName=");
		builder.append(accessName);
		builder.append(", accessType=");
		builder.append(accessType);
		builder.append(", depBankMerId=");
		builder.append(depBankMerId);
		builder.append("]");
		return builder.toString();
	}
	
	
}
